#include "qtexteditorplus.h"

QTextEditorPlus::QTextEditorPlus(QWidget *parent) :QTextEdit(parent) {
    this->setAcceptRichText(true);
    this->setPlaceholderText("请粘贴待分析文本....");
}

/**
 * @brief QTextEditorPlus::insertFromMimeData 粘贴数据时的处理，仅允许粘贴文本内容
 * @param source 待粘贴数据
 */
void QTextEditorPlus::insertFromMimeData(const QMimeData *source) {
    if (!source) {
        return;  // 确保 source 不为空
    }

    if (source->hasHtml()) {
        // 获取 HTML 内容
        QString htmlContent = source->html();

        // 提取纯文本部分
        QString plainText = extractTextFromHtml(htmlContent);

        // 插入纯文本
        this->insertPlainText(plainText);

    } else if (source->hasText()) {
        // 如果没有 HTML，但有文本内容
        this->insertPlainText(source->text());
    } else {
        // 其他情况调用父类的默认行为
        QTextEdit::insertFromMimeData(source);
    }
}

// 辅助函数：从 HTML 提取纯文本
QString QTextEditorPlus::extractTextFromHtml(const QString &htmlContent) {
    QTextDocument tempDoc;
    tempDoc.setHtml(htmlContent);

    // 提取文本内容
    return tempDoc.toPlainText();
}

